1
Beralih ke Produksi: Pola Pikir Pengembangan
EvoClass-AI002Pertemuan 10
00:00

Beralih ke Produksi: Pola Pikir Pengembangan

Modul terakhir ini menghubungkan celah antara penelitian yang sukses—di mana kita mencapai akurasi tinggi dalam sebuah catatan—dan eksekusi yang andal. Pengembangan adalah proses krusial dalam mengubah model PyTorch menjadi layanan minimal, layanan mandiriyang mampu memberikan prediksi secara efisien kepada pengguna akhir dengan latensi rendah dan ketersediaan tinggi.

1. Perubahan Pola Pikir Produksi

Lingkungan eksploratif dari catatan Jupyter bersifat berbasis status dan rapuh untuk penggunaan produksi. Kita harus merefaktor kode kita dari skrip eksploratif menjadi komponen terstruktur dan modular yang sesuai untuk permintaan bersamaan, optimasi sumber daya, serta integrasi mulus ke dalam sistem yang lebih besar.

Inferensi Latensi Rendah:Mencapai waktu prediksi secara konsisten di bawah ambang batas target (misalnya, $50\text{ms}$), sangat penting untuk aplikasi waktu nyata.
Ketersediaan Tinggi:Merancang layanan agar dapat diandalkan, tanpa status, dan mampu pulih dengan cepat dari kegagalan.
Reproduktibilitas:Menjamin bahwa model dan lingkungan yang diimplementasikan (dependensi, bobot, konfigurasi) persis sama dengan hasil penelitian yang telah divalidasi.
Fokus: Layanan Model
Alih-alih mengimplementasikan seluruh skrip pelatihan, kita mengimplementasikan pembungkus layanan minimal dan mandiri. Layanan ini hanya perlu menangani tiga tugas: memuat artefak model yang dioptimalkan, menerapkan pra-pemrosesan input, dan menjalankan proses maju untuk mengembalikan prediksi.
inference_service.py
TERMINALbash — uvicorn-service
> Siap. Klik "Simulasikan Alur Pengembangan" untuk menjalankan.
>
INSPEKTOR ARTIFAK Hidup

Simulasikan alur untuk melihat artefak produksi yang dimuat.
Pertanyaan 1
Fitur apa dari catatan Jupyter yang membuatnya tidak cocok untuk pengembangan produksi?
Ini terutama menggunakan kode Python
Ini secara inheren berbasis status dan intensif sumber daya
Ini tidak bisa langsung mengakses GPU
Pertanyaan 2
Apa tujuan utama mengonversi model PyTorch ke TorchScript atau ONNX sebelum pengembangan?
Optimisasi untuk eksekusi C++ yang lebih cepat dan pengurangan ketergantungan Python
Untuk mencegah pencurian model atau rekayasa balik
Untuk secara otomatis menangani pra-pemrosesan data input
Pertanyaan 3
Saat merancang API produksi, kapan bobot model harus dimuat?
Sekali, saat layanan diinisialisasi
Pada awal setiap permintaan prediksi
Ketika permintaan pertama ke layanan diterima
Tantangan: Menentukan Layanan Minimal
Rancang persyaratan struktural untuk layanan latensi rendah.
Anda perlu mengimplementasikan model klasifikasi gambar yang kompleks ($1\text{GB}$) yang membutuhkan pra-pemrosesan gambar khusus. Layanan ini harus menangani $50$ permintaan per detik.
Langkah 1
Untuk memastikan throughput tinggi dan latensi rata-rata rendah, apa perubahan struktural paling kritis yang dibutuhkan untuk skrip Python?
Solusi:
Refaktor kode menjadi modul terpisah (Pra-pemrosesan, Definisi Model, Pengecekan Inferensi) dan pastikan seluruh proses dikemas untuk kontainerisasi.
Langkah 2
Apa artefak minimum yang diperlukan untuk dikirim, selain bobot yang dilatih?
Solusi:
Definisi kode/kelas yang digunakan untuk pra-pemrosesan dan definisi arsitektur model, diserialisasi dan dikaitkan dengan bobot.